﻿using System;
using System.Collections.Generic;
using System.Text;
using DotMail.Commons.DAO;

namespace DotMail.Commons.Interfaces
{
    /// <summary>
    /// Interface that Mail Datastores must implement so that they are compatible with the server
    /// </summary>
    public abstract class MailStorage
    {
        public abstract List<Message> GetAllMessages(string folderName);
        public abstract bool StoreMessage(Message msg, int folderID);
        public abstract bool CreateFolder(int parentFolder, string folderName);
        public abstract List<Dictionary<string, string>> GetMessageHeaders(int folderID);
        public abstract List<Folder> GetFolderList(User user);
        public abstract User GetUser(string email);
        public abstract bool CreateUser(string userName, string password, string email);
        public abstract User Authenticate(string userName, string password);
        public abstract bool CanAuthenticateUsers();
    }
}
